A computer storage system at a data center typically includes many data storage devices (e.g., disks, tapes, solid state devices, etc.) that are connected to one or more storage controllers (control units). In operation, the storage controllers receive commands from host computers to establish logical connections with the devices and execute I/O processes with the devices. For large computer systems such as those based on the IBM zSeries™ architecture, the host computers may include multiple channel subsystems for handling the complex and concurrent I/O processing of the large number of storage devices and controllers. The channel subsystems typically communicate with the storage controllers by issuing host commands in the form of channel command words (CCWs).
For enhanced performance and reliability, the host channel subsystems generally set up and manage multiple logical paths between a host and a storage device. In order to perform I/O operations on a particular storage device, a host computer needs to bring the storage device online by initially establishing a group of logical paths between a host and the target storage device. The host's channel subsystem may issue a command to a storage controller with connections to the storage device to designate the device for I/O communication by the host through certain logical paths.
For example, in the IBM S/390™ and zSeries™ architectures, a host channel may issue a Set-Path-Group-ID (SPID) command as part of the device bring-up process. In current implementations, the host may need to issue a SPID command for each storage controller on the logical paths. For example, if there are 8 logical paths associated with the host, the host would need to send 8 separate SPID commands to the associated storage controllers in order to bring a target device online.
With the large number of storage devices in a typical user environment, the amount of I/O processing and error recovery due to the bring-up of these storage devices would result in significant system overheads for the hosts and storage controllers.